package com.mycat.common.util;

import java.util.Collection;
import java.util.Map;

public class CommonUtil {

	/**
	 * 判断对象是否是基本数据类型
	 *
	 * @param obj
	 *            需要判断的对象
	 * @return
	 */
	public static boolean isBaseType(Object obj) {
		if (obj == null) {
			return true;
		} else if (obj instanceof String) {
			return true;
		} else if (obj instanceof Number) {
			return true;
		} else if (obj instanceof Integer) {
			return true;
		} else if (obj instanceof Long) {
			return true;
		} else if (obj instanceof Float) {
			return true;
		} else if (obj instanceof Boolean) {
			return true;
		} else if (obj instanceof Double) {
			return true;
		} else if (obj instanceof Short) {
			return true;
		} else if (obj instanceof Byte) {
			return true;
		}
		return false;
	}
	
	/**
	 * 检查对象是否为空
	 * 
	 * @param obj
	 *            java任意类型
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isEmpty(Object obj) {
		if (obj == null) {
			return true;
		} else if (obj instanceof String && (obj.toString().trim().equals(""))) {
			return true;
		} else if (obj instanceof Number && ((Number) obj).doubleValue() < 0) {
			return true;
		} else if (obj instanceof Collection && ((Collection) obj).isEmpty()) {
			return true;
		} else if (obj instanceof Map && ((Map) obj).isEmpty()) {
			return true;
		} else if (obj instanceof Object[] && ((Object[]) obj).length == 0) {
			return true;
		}
		return false;
	}
	
	/**
	 * 检查对象是否不为空
	 * 
	 * @param obj
	 * @return
	 */
	public static boolean isNotEmpty(Object obj) {
		return !isEmpty(obj);
	}
	
	/**
	 * 检查对象是否不为空
	 * 
	 * @param obj
	 * @return
	 */
	public static boolean isNotEmpty(Object... obj) {
		boolean res = true;
		for (Object o : obj) {
			if (isEmpty(o)) {
				res = false;
			}
		}
		return res;
	}
}
